/*
  File:    random.h
  Purpose: To provide superior random number generators, 
           as compared to the standard rand() function. 

  Contact: Paul Macklin
           pmacklin@math.uci.edu
		  http://math.uci.edu/~pmacklin
*/
 
// in all of these, amazing > great > good

#ifndef __random_h__
#define __random_h__

void SeedRandom( long input );

void SeedRandom( void );

// This is the general function that you'll call in all functions. If you 
// desire a different random number generator, change the SeedRandom() function.

float UniformRandom( void );

// the ran1 in Numerical Recipes in C
// a pretty darned good random number generator
// use this if you expect to use fewer than 100,000,000 calls 
// Must be seeded with a negative number!!

float GoodUniformRandom( void );

// the ran2 in Numerical Recipes in C
// a pretty darned great random number generator
// use this if you expect to use greater than 100,000,000 calls 
// Must be seeded with a negative number!!

float GreatUniformRandom(void);

float KnuthUniformRandom(void);

// gives normal distribution with mean 0, variance 1;

float NormalRandom(void);

long TellRandomSeed( void );

#endif
